<?php

	class RegisterController{
		
		private $ret = "";
		private $status = "";
		private $error = false;

		public function DoControll(Database $db){
			$Rview = new RegisterView();
			$handler = new RegisterHandler($db);

				// Gör registerformuläret
				$this->ret = $Rview->DoRegisterBox();
				
				// Försöker användaren att registrera
				if($Rview->TriedToRegister()){
					
					// Kollar så inte användaren redan finns
					if($handler->DoExists($Rview->GetUserName())){
						$this->status .= $Rview->Status(RegisterView::NAME_DOES_EXIST);
						$this->error = true;
					}
					// kollar om namnet är tomt
					if($handler->nameIsEmpty($Rview->GetUserName())){
						$this->status .= $Rview->Status(RegisterView::NAME_IS_EMPTY);
						$this->error = true;
					}
					// Kollar om lösenordet är tomt
					if($handler->passIsEmpty($Rview->GetPassword())){
						$this->status .= $Rview->Status(RegisterView::PASS_IS_EMPTY);
						$this->error = true;
					}
					// Kollar om lösenorden matchar
					if($Rview->passNotMatch($Rview->GetPassword(), $Rview->GetPassword2())){
						$this->status .= $Rview->Status(RegisterView::PASS_NOT_EQUAL);
						$this->error = true;
					}
					if($handler->validatePass($Rview->GetPassword()) === false){
						$this->status .= $Rview->Status(RegisterView::PASS_NOT_GOOD);
						$this->error = true;
					}
					// Kollar så det inte är några fel
					if($this->error === false){
					
						if($handler->DoRegister($Rview->GetUserName(), $Rview->GetPassword())){
							$this->status = $Rview->Status(RegisterView::USER_REGISTER);
						}
					}
	
				}
				// retunerar allt roligt
				return $this->ret . $this->status;
			
			}
			
		}
	